wowwikifandomcom-20200223-history
CVar processAffinityMask
Controls which processor cores or logical-cores are used by WoW. Changing this setting requires a restart to make the change effective. Use is deprecated since patch 3.3.2, and the default of '0' is now recommended. See also CVar maxAnimThreads. SET processAffinityMask "0" /console processAffinityMask 0 Possible settings A number from 0 to 4294967295 as a bit-mask, with a bit for each logical CPU core and up to 32 cores total. Bit set to 1 enables a core for WoW, and set to 0 disable a core for WoW. * 0 - (default) threads get automatically placed on cores by normal OS controlled process * 1 - Logical core 1 only (bits 0001) * 2 - Logical core 2 only (bits 0010) * 3 - Logical core 1 and 2 only (bits 0011) * 4 - Logical core 3 only (bits 0100) * 5 - Logical core 1 and 3 only (bits 0101) * 6 - Logical core 2 and 3 only (bits 0110) * 7 - Logical core 1, 2, and 3 only (bits 0111) * .... and so on Details : Note: Manually adjusting this CVar is no longer needed as of 3.3.2, unless you're trying to run the game on specific cores. As of 3.3.2 the default setting will now already be uncapped, so it will run on whatever core your OS deems as fit. If however, you want to specify which cores wow runs on, continue reading. : Note: Mask bits are documented here Win32 SetProcessAffinityMask (MSDN) as well. Each bit corresponds to one logical CPU core. The least significant bit corresponds to the first logical core, with the ability to control up to 32 logical cores. Logical cores on the same physical core will typically be grouped together for the mask, so that logical cores 1 and 2 are on the same HT core 0, positions 3 and 4 (bits 001100) would be for HT core 1. Customizing your settings for multi-core processors To customize which cores WoW uses place SET processAffinityMask "x" in your Config.wtf where 'x' is replaced with the corresponding value in the following table. Note: The table lists values for up to 8 cores, but the cvar supports up to 32 cores with a max value of 4294967295. Setting WoW to run on all cores :Important: Intel and AMD have both recently in last few years dramatically changed which processor models support HT, especially in lower model processors. As of 2017, nearly all new major brand processors will have something similar to HT, or more than one logical processor per core. Also, cores and HT can be disabled for the system, even if you know the maximum your processor model supports. Firstly, knowing how many actual logical core you have is important to knowing which mask to use. The easiest way on a PC to tell how many system logical cores are running, is to open Task Manager and switch to the Performance tab (and then "CPU" on win 8 and 10) and read the number logical processors value. As an aside, setting a mask for a larger value than the number of logical cores you have, should produce the same result. So setting value to "7" would limit WoW to first 4 logical cores available, would still be safe and produce the same result of up to 4 cores as available on any CPU. * Dual-cores without HT, Core 2 Duos, most older Pentiums, i3s, and i5s, some i7s (2c): SET processAffinityMask "3" * Tri-cores without HT, many older AMD (3c): SET processAffinityMask "7" * Quads without HT, some older i5s and i7s (4c): SET processAffinityMask "15" * Quads with HT, many older i7s (4c/8t): SET processAffinityMask "255" * Hex-Core with HT (6c/12t) SET processAffinityMask "1344" * 16-core / Generic 8-core hyper-threaded (8c/16t): SET processAffinityMask "65535" Optimal settings for multi-core processors (pre-3.3.2) Originally pre-2010, the general idea was to not only enable wow for all cores, but to also limit each physical core to one logical core, in an attempt to avoid letting WoW use HT or Hyper-Threading. Even though the original issues no longer exist post-3.3.2, the affinity mask itself is well documented, and still a hot topic in general inside and outside of WoW. Limiting the number of wow cores can still be a useful tool as a form of throttling WoW, or dealing with WoW specific performance/cooling, animation, or GPU issues, or for running VMs, or can even help in running multiple games at the same time. Here are the original pre-2010 optimal settings for reference: * Dual-cores (both of the 2 logical): SET processAffinityMask "3" * Tri-cores & i5s (all 3 logical): SET processAffinityMask "7" * Quad-cores no HT (all 4 logical): SET processAffinityMask "15" * I7s with HT enabled (primary logical of every physical core, 4 total, bits 01010101): SET processAffinityMask "85" * 16-core/8-core hyper-threaded (primary logical of every physical core, 8 total, bits 0101010101010101): SET processAffinityMask "21845" AMD Ryzen Summit Ridge and Pinnacle Ridge Processors based on AMD Zen microarchitecture are internally divided into two core complexes (CCX) with separate cache. Running WoW on a single CCX can improve performance by reducing cache latency. FPS improvement is around 10% in CPU-bound areas. * 4-core/4-thread (all Ryzen 3): SET processAffinityMask "12" * 4-core/8-thread (Ryzen 5 1400/1500/2500): SET processAffinityMask "240" * 6-core/12-thread (Ryzen 5 1600/2600): SET processAffinityMask "4032" * 8-core/16-thread (all Ryzen 7): SET processAffinityMask "65280" Raven Ridge and Threadripper Ryzen processors with integrated graphics (with a "G" in the model number) have a single CCX so no mask should be set. Threadripper processors contain more CCX. Patch changes * * * processAffinityMask